#ifndef MATERIAL_H
#define MATERIAL_H

#include <vector>
#include <cmath>
#include <string>

typedef std::string String;
typedef std::vector<String> StringVector;

#include "GLee.h"

//
#define ILUT_USE_OPENGL
#include <IL/il.h>
#include <IL/ilu.h>
#include <IL/ilut.h>

struct Cor
{
    const static Cor COLOR_WHITE;
    const static Cor COLOR_BLACK;
    const static Cor COLOR_DARK_GRAY;
    const static Cor COLOR_GRAY;
    const static Cor COLOR_LIGHT_GRAY;
    const static Cor COLOR_RED;
    const static Cor COLOR_GREEN;
    const static Cor COLOR_BLUE;
    const static Cor COLOR_MAGENTA;
    const static Cor COLOR_CYAN;
    const static Cor COLOR_ORANGE;
    const static Cor COLOR_YELLOW;
    const static Cor COLOR_BROWN;
    const static Cor COLOR_PURPLE;

    Cor(float gray=1.0f);
    Cor(float red,float green,float blue,float alpha=1.0f);

    void set(float red,float green,float blue,float alpha=1.0f);

    float r;
    float g;
    float b;
    float a;
};

class Material
{
public:
    Material(void);
    ~Material(void);

    void carregarTextura(const char* arquivoTextura);
    void usarMaterial(void);

    Cor cor;
    bool texturaHabilitada;
    bool transparente;

protected:

    GLuint id;
};

#endif // MATERIAL_H
